package com.wxapp.pay.service.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wxapp.common.constant.pojo.vm.ResultVm;
import com.wxapp.common.constant.pojo.vo.UserVo;
import com.wxapp.common.core.filter.except.ThrowMyException;
import com.wxapp.pay.api.pojo.pojo.vm.pay.PPayDetailVm;
import com.wxapp.pay.api.pojo.pojo.vm.pay.PPayPageVm;
import com.wxapp.pay.api.pojo.pojo.vm.pay.PPaySelectVm;
import com.wxapp.pay.api.pojo.pojo.vm.pay.PPayStatusVm;
import com.wxapp.pay.api.pojo.pojo.vm.payConfig.PConfigVm;
import com.wxapp.pay.api.pojo.pojo.vo.pay.*;

import java.util.List;

/**
 * @author lgl
 */
public interface PayService {

    ResultVm<String> add(QPayAddVo qPayAddVo, UserVo userVo);

    ResultVm<String> update(QPayUpdateVo qPayUpdateVo, UserVo userVo);

    ResultVm<Page<PPayPageVm>> page(QPayPageVo qPayPageVo);

    ResultVm<String> delGoods(String id);

    ResultVm<PPayDetailVm> detail(String id);

    ResultVm<List<PPaySelectVm>> getPaySelect();

    ResultVm<String> pay(UserVo userVo, QPayVo vo) throws ThrowMyException;

    ResultVm<PPayStatusVm> getStatus(String orderCode);

    ResultVm<List<PConfigVm>> wechatCallBack(QWechatCallBackVo vo) throws ThrowMyException;

    ResultVm<String> aliPayCallBack(QAliPayCallBackVo vo) throws ThrowMyException;


}
